<?php
	require("frmCookie.php");
	
	$iOpcion = $_GET[iOpcion];
?>
<html>
	<head>
    	<?php
		require("frmHeader.php");
		?>
		<script language="javascript" src="scripts/validar.js"></script>
		<script language="javascript"></script>
	</head>
	<body>
    	<table cellpadding="0" cellspacing="0" align="center" class="tablaPrincipal">
        	<tr>
            	<td align="center">
                	<?php
					require("frmSession.php"); 
					
					//Redirecciona a SINPERMISOS.PHP en caso de no tener permisos
					
					if (!(in_array(165004, $_SESSION[permisos])))
					{
					?>
					  <script language="JavaScript" type="text/javascript">
					  <!--
					  window.location.href = "sinPermisos.php"
					  //-->
					  </script>
					<?php
					}
					$titulo = "Reporte Órdenes de Compra";
					
					?>
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<?php
					require("frmTitulo.php");
					?>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="menuPrincipal">
                    	<tr>
                        	<td>
								<?php
                                require("frmMenu.php");
                                ?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="tituloPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $titulo; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="estadoPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $mensaje; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="contenedorPrincipal">
                    	<tr>
                        	<td align="">
                        		<?php
                        		switch($iOpcion)
                        		{
                        			case 1:
                        			{
                				?>
                				<form name="frm" action="excelOrdenesCompra.php?iOpcion=2" onSubmit="return validaForm();" method="post">
                					<table>
                						<tr>
                							<td>Fecha Desde: </td>
                							<td><input type="text" name="txtFechaDesde" size="10" maxlength="10" /></td>
                						</tr>
                						<tr>
                							<td>Fecha Hasta: </td>
                							<td><input type="text" name="txtFechaHasta" size="10" maxlength="10" /></td>
                						</tr>
                						<tr>
                							<td colspan="2" align="center"><input type="submit" name="cmdEnviar" value="Generar" /></td>
                						</tr>
                					</table>
                				</form>
                        		<?php
                        				break;
                        			}
                        			case 2:
                        			{
                        		
		                        		$data = array(
										  array("Numero de Orden de Compra", "Fecha de Pedido", "Plazo", "Proveedor", "Numero de Orden de Compra del Proveedor", "Sucursal", "Proceso", "Fecha Ingreso", "Remito de Ingreso", "Factura de Ingreso", "Codigo Tango", "Codigo Fabricante", "Descripcion Interna", "Valor de Referencia", "Moneda", "Valor Real", "Moneda", "Modelos", "Cantidad", "Estado")
										);
		                        		
		                        		list($dia, $mes, $ano) = split("/", $_POST[txtFechaDesde]);
										$fechaDesde = $ano . "-" . $mes . "-" . $dia;
		                				
		                				list($dia, $mes, $ano) = split("/", $_POST[txtFechaHasta]);
										$fechaHasta = $ano . "-" . $mes . "-" . $dia;
										
		                        		$sql = "select r.* /*, m.nombreComercial as modelo*/ from(
select oc.numeroOrdenCompra as numeroOrdenCompra, date_format(oc.fecha, '%d/%m/%Y') as fechaCreacion, if(pxoc.cantidadRecibida + pxoc.cantidadCancelada = pxoc.cantidadPedida,'Completada',if(date_add(oc.fecha, INTERVAL pr.demoraEntrega DAY) > date(now()),'En Plazo','Vencida')) as plazo, pr.nombre as proveedor, oc.numeroOrdenCompraProveedor as numeroOrdenCompraProveedor, suc.nombreInterno as sucursal, oc.proceso as proceso, date_format(s.fecha, '%d/%m/%Y') as fechaIngreso, s.nroRemitoLlegada as remito, s.nroFactura as factura, p.idParte as  idParte, p.codigoTango as codigoTango, p.codigoFabricante as codigoFabricante, p.descripcionInterna as descripcionInterna, p.valorReferencia as valorReferencia, m1.nombre as monedaValorReferencia, s.precio as precio, m2.nombre as monedaValorReal, pxoc.cantidadRecibida as cantidad, 'Ingresado' as estado from ordenescompra oc join partesxordencompra pxoc on oc.idOrdenCompra = pxoc.idOrdenCompra join partes p on pxoc.idParte = p.idParte join proveedores pr on oc.idProveedor = pr.idProveedor join stock s on (p.idParte = s.idParte and oc.idOrdenCompra = s.idOrdenCompra) left join monedas m1 on p.idMoneda = m1.idMoneda left join monedas m2 on s.idMoneda = m2.idMoneda join almacenes a on s.idAlmacen = a.idAlmacen join sucursales suc on a.idSucursal = suc.idSucursal
UNION ALL (
select oc.numeroOrdenCompra as numeroOrdenCompra, date_format(oc.fecha, '%d/%m/%Y') as fechaCreacion, if(pxoc.cantidadRecibida + pxoc.cantidadCancelada = pxoc.cantidadPedida,'Completada',if(date_add(oc.fecha, INTERVAL pr.demoraEntrega DAY) > date(now()),'En Plazo','Vencida')) as plazo, pr.nombre as proveedor, oc.numeroOrdenCompraProveedor as numeroOrdenCompraProveedor, '' as sucursal, oc.proceso as proceso, '' as fechaIngreso, '' as remito, '' as factura, p.idParte as idParte, p.codigoTango as codigoTango, p.codigoFabricante as codigoFabricante, p.descripcionInterna as descripcionInterna, p.valorReferencia as valorReferencia, m1.nombre as monedaValorReferencia, '' as precio, '' as monedaValorReal, pxoc.cantidadPedida - (pxoc.cantidadRecibida + pxoc.cantidadCancelada) as cantidad, 'Pendiente' as estado from ordenescompra oc join partesxordencompra pxoc on oc.idOrdenCompra = pxoc.idOrdenCompra join partes p on pxoc.idParte = p.idParte join proveedores pr on oc.idProveedor = pr.idProveedor left join monedas m1 on p.idMoneda = m1.idMoneda where pxoc.cantidadPedida > pxoc.cantidadRecibida + pxoc.cantidadCancelada)
UNION ALL (
select oc.numeroOrdenCompra as numeroOrdenCompra, date_format(oc.fecha, '%d/%m/%Y') as fechaCreacion, if(pxoc.cantidadRecibida + pxoc.cantidadCancelada = pxoc.cantidadPedida,'Completada',if(date_add(oc.fecha, INTERVAL pr.demoraEntrega DAY) > date(now()),'En Plazo','Vencida')) as plazo, pr.nombre as proveedor, oc.numeroOrdenCompraProveedor as numeroOrdenCompraProveedor, '' as sucursal, oc.proceso as proceso, '' as fechaIngreso, '' as remito, '' as factura, p.idParte as idParte, p.codigoTango as codigoTango, p.codigoFabricante as codigoFabricante, p.descripcionInterna as descripcionInterna, p.valorReferencia as valorReferencia, m1.nombre as monedaValorReferencia, '' as precio, '' as monedaValorReal, pxoc.cantidadCancelada as cantidad, 'Cancelada' as estado from ordenescompra oc join partesxordencompra pxoc on oc.idOrdenCompra = pxoc.idOrdenCompra join partes p on pxoc.idParte = p.idParte join proveedores pr on oc.idProveedor = pr.idProveedor left join monedas m1 on p.idMoneda = m1.idMoneda where pxoc.cantidadCancelada > 0)
UNION ALL (
select oc.numeroOrdenCompra as numeroOrdenCompra, date_format(oc.fecha, '%d/%m/%Y') as fechaCreacion, if(pxoc.cantidadRecibida + pxoc.cantidadCancelada = pxoc.cantidadPedida,'Completada',if(date_add(oc.fecha, INTERVAL pr.demoraEntrega DAY) > date(now()),'En Plazo','Vencida')) as plazo, pr.nombre as proveedor, oc.numeroOrdenCompraProveedor as numeroOrdenCompraProveedor, '' as sucursal, oc.proceso as proceso, '' as fechaIngreso, '' as remito, '' as factura, p.idParte as idParte, p.codigoTango as codigoTango, p.codigoFabricante as codigoFabricante, p.descripcionInterna as descripcionInterna, p.valorReferencia as valorReferencia, m1.nombre as monedaValorReferencia, '' as precio, '' as monedaValorReal, pxoc.cantidadPedida as cantidad, 'Pedido Original' as estado from ordenescompra oc join partesxordencompra pxoc on oc.idOrdenCompra = pxoc.idOrdenCompra join partes p on pxoc.idParte = p.idParte join proveedores pr on oc.idProveedor = pr.idProveedor left join monedas m1 on p.idMoneda = m1.idMoneda)
)r /*join partesxmodelo pxm on r.idParte = pxm.idParte join modelos m on pxm.idModelo = m.idModelo*/ order by r.idParte";
										
										//echo $mySQLOrden;
										//exit;
										
		                        		$ordenesCompra = readSQL("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;".$sql);
										
										foreach($ordenesCompra as $ordenCompra)
										{
											if($idsPartes == "")
											{
												$idsPartes = $ordenCompra['idParte'];	
											}
											else
											{
												$idsPartes .=  ", " . $ordenCompra['idParte'];	
											}
										}
										
										$sql = "select pxm.idParte, m.nombreComercial as modelo from partesxmodelo pxm join modelos m on pxm.idModelo = m.idModelo where pxm.idParte in ($idsPartes) order by pxm.idParte";
										$partesxModelo = readSQL($sql);
										
										$miPartesxModelo = array();
										$i=0;
										foreach($partesxModelo as $partexModelo)
										{
											if($i==0)
											{
												$idParte = $partexModelo['idParte'];
												$modelos = $partexModelo['modelo'];
											}
											else if($idParte == $partexModelo['idParte'])
											{
												$modelos .= " - " . $partexModelo['modelo'];
											}
											else
											{
												$registros = array("idParte"=>$idParte, "modelos"=>$modelos);
												$modelos = "";
												
												array_push($miPartesxModelo, $registros);
												
												$idParte = $partexModelo['idParte'];
												$modelos = $partexModelo['modelo'];
											}
											$i++;
										}
										
										$registros = array("idParte"=>$idParte, "modelos"=>$modelos);
										array_push($miPartesxModelo, $registros);
										
										foreach($ordenesCompra as $ordenCompra)
										{
											$registro = array();
											
											$idParte = $ordenCompra['idParte'];
											
											$numeroOrdenCompra = $ordenCompra['numeroOrdenCompra'];
											$fechaCreacion = $ordenCompra['fechaCreacion'];
											$plazo = $ordenCompra['plazo'];
											$proveedor = $ordenCompra['proveedor'];
											$numeroOrdenCompraProveedor = $ordenCompra['numeroOrdenCompraProveedor'];
											$sucursal = $ordenCompra['sucursal'];
											$proceso = $ordenCompra['proceso'];
											$fechaIngreso = $ordenCompra['fechaIngreso'];
											$remito = $ordenCompra['remito'];
											$factura = $ordenCompra['factura'];
											$codigoTango = $ordenCompra['codigoTango'];
											$codigoFabricante = $ordenCompra['codigoFabricante'];
											$descripcionInterna = $ordenCompra['descripcionInterna'];
											$valorReferencia = $ordenCompra['valorReferencia'];
											$monedaValorReferencia = $ordenCompra['monedaValorReferencia'];
											$precio = $ordenCompra['precio'];
											$monedaValorReal = $ordenCompra['monedaValorReal'];
											$cantidad = $ordenCompra['cantidad'];
											$estado = $ordenCompra['estado'];
											
											array_push($registro, $numeroOrdenCompra);
											array_push($registro, $fechaCreacion);
											array_push($registro, $plazo);
											array_push($registro, $proveedor);
											array_push($registro, $numeroOrdenCompraProveedor);
											array_push($registro, $sucursal);
											array_push($registro, $proceso);
											array_push($registro, $fechaIngreso);
											array_push($registro, $remito);
											array_push($registro, $factura);
											array_push($registro, $codigoTango);
											array_push($registro, $codigoFabricante);
											array_push($registro, $descripcionInterna);
											array_push($registro, $valorReferencia);
											array_push($registro, $monedaValorReferencia);
											array_push($registro, $precio);
											array_push($registro, $monedaValorReal);
											foreach($miPartesxModelo as $miPartexModelo)
											{
												if($idParte == $miPartexModelo['idParte'])
												{
													array_push($registro, array_pop($miPartexModelo));
													break;
												}
											}
											array_push($registro, $cantidad);
											array_push($registro, $estado);
											
											array_push($data, $registro);
										}
										
										
										/*
										$fila=0;
										$modelos = array();
										
										
										foreach($ordenesCompra as $ordenCompra)
										{
											if($fila==0)
											{
												$idParte = $ordenCompra['idParte'];
												
												$numeroOrdenCompra = $ordenCompra['numeroOrdenCompra'];
												$fechaCreacion = $ordenCompra['fechaCreacion'];
												$plazo = $ordenCompra['plazo'];
												$proveedor = $ordenCompra['proveedor'];
												$numeroOrdenCompraProveedor = $ordenCompra['numeroOrdenCompraProveedor'];
												$sucursal = $ordenCompra['sucursal'];
												$proceso = $ordenCompra['proceso'];
												$fechaIngreso = $ordenCompra['fechaIngreso'];
												$remito = $ordenCompra['remito'];
												$factura = $ordenCompra['factura'];
												$codigoTango = $ordenCompra['codigoTango'];
												$codigoFabricante = $ordenCompra['codigoFabricante'];
												$descripcionInterna = $ordenCompra['descripcionInterna'];
												$valorReferencia = $ordenCompra['valorReferencia'];
												$monedaValorReferencia = $ordenCompra['monedaValorReferencia'];
												$precio = $ordenCompra['precio'];
												$monedaValorReal = $ordenCompra['monedaValorReal'];
												$cantidad = $ordenCompra['cantidad'];
												$estado = $ordenCompra['estado'];
												array_push($modelos, $ordenCompra['modelo']);
											}
											else if($idParte == $ordenCompra['idParte'])
											{
												if(!in_array($ordenCompra['modelo'], $modelos))
												{
													array_push($modelos, $ordenCompra['modelo']);
												}
											}
											else
											{
												$registro = array();
												
												array_push($registro, $numeroOrdenCompra);
												array_push($registro, $fechaCreacion);
												array_push($registro, $plazo);
												array_push($registro, $proveedor);
												array_push($registro, $numeroOrdenCompraProveedor);
												array_push($registro, $sucursal);
												array_push($registro, $proceso);
												array_push($registro, $fechaIngreso);
												array_push($registro, $remito);
												array_push($registro, $factura);
												array_push($registro, $codigoTango);
												array_push($registro, $codigoFabricante);
												array_push($registro, $descripcionInterna);
												array_push($registro, $valorReferencia);
												array_push($registro, $monedaValorReferencia);
												array_push($registro, $precio);
												array_push($registro, $monedaValorReal);
												for($i=0; $i<count($modelos); $i++)
												{
													if($modelosConcatenados == '')
													{
														$modelosConcatenados = array_pop($modelos);
													}
													else
													{
														$modelosConcatenados .= " - " . array_pop($modelos);
													}
												}
												array_push($registro, $modelosConcatenados);
												$modelos = array();
												array_push($registro, $cantidad);
												array_push($registro, $estado);
												
												array_push($data, $registro);
												
												$idParte = $ordenCompra['idParte'];
												
												$numeroOrdenCompra = $ordenCompra['numeroOrdenCompra'];
												$fechaCreacion = $ordenCompra['fechaCreacion'];
												$plazo = $ordenCompra['plazo'];
												$proveedor = $ordenCompra['proveedor'];
												$numeroOrdenCompraProveedor = $ordenCompra['numeroOrdenCompraProveedor'];
												$sucursal = $ordenCompra['sucursal'];
												$proceso = $ordenCompra['proceso'];
												$fechaIngreso = $ordenCompra['fechaIngreso'];
												$remito = $ordenCompra['remito'];
												$factura = $ordenCompra['factura'];
												$codigoTango = $ordenCompra['codigoTango'];
												$codigoFabricante = $ordenCompra['codigoFabricante'];
												$descripcionInterna = $ordenCompra['descripcionInterna'];
												$valorReferencia = $ordenCompra['valorReferencia'];
												$monedaValorReferencia = $ordenCompra['monedaValorReferencia'];
												$precio = $ordenCompra['precio'];
												$monedaValorReal = $ordenCompra['monedaValorReal'];
												$cantidad = $ordenCompra['cantidad'];
												$estado = $ordenCompra['estado'];
												array_push($modelos, $ordenCompra['modelo']);
											}
											
											$fila++;
										}
										
										$registro = array();
										
										array_push($registro, $numeroOrdenCompra);
										array_push($registro, $fechaCreacion);
										array_push($registro, $plazo);
										array_push($registro, $proveedor);
										array_push($registro, $numeroOrdenCompraProveedor);
										array_push($registro, $sucursal);
										array_push($registro, $proceso);
										array_push($registro, $fechaIngreso);
										array_push($registro, $remito);
										array_push($registro, $factura);
										array_push($registro, $codigoTango);
										array_push($registro, $codigoFabricante);
										array_push($registro, $descripcionInterna);
										array_push($registro, $valorReferencia);
										array_push($registro, $monedaValorReferencia);
										array_push($registro, $precio);
										array_push($registro, $monedaValorReal);
										for($i=0; $i<count($modelos); $i++)
										{
											if($modelosConcatenados == '')
											{
												$modelosConcatenados = array_pop($modelos);
											}
											else
											{
												$modelosConcatenados .= " - " . array_pop($modelos);
											}
										}
										array_push($registro, $modelosConcatenados);
										$modelos = array();
										array_push($registro, $cantidad);
										array_push($registro, $estado);
										
										array_push($data, $registro);
										
										*/
												
		                        		// include package
										include 'Spreadsheet/Excel/Writer.php';
										
										// Fecha Hora Inicio
										$fecha = getdate();
										$dia = $fecha[mday];
										$mes = $fecha[mon];
										$ano = $fecha[year];
										$hora = $fecha[hours];
										$minutos = $fecha[minutes];
										$segundos = $fecha[seconds];
										$archivo =  $ano . "-" . $mes . "-" . $dia . "-" . $hora . "-" . $minutos . "-" . $segundos . "OrdenesCompra.xls";
										
										// create empty file
										if($_SERVER['SERVER_NAME'] == "localhost")
										{
											$host = "/Users/fede/Sites/galander/informes/";
										}
										else
										{
											$host = "/var/www/html/galander/informes/";	
										}
										$excel = new Spreadsheet_Excel_Writer($host . $archivo);
										
										// add worksheet
										$sheet =& $excel->addWorksheet('Hoja 1');
										
										// create format for header row 
										// bold, red with black lower border
										/*$firstRow =& $excel->addFormat();
										$firstRow->setBold();
										$firstRow->setColor('black');
										$firstRow->setBottom(1);*/
										//$firstRow->setBottomColor('black');
										
										// create format for header column
										// blue with black right border
										/*$firstCol =& $excel->addFormat();
										$firstRow->setBold();
										$firstCol->setColor('black');*/
										//$firstCol->setRight(1);
										//$firstCol->setRightColor('black');
										
										// create format for top left corner
										/*$firstRowCol =& $excel->addFormat();
										$firstRowCol->setBottom(1);*/
										//$firstRowCol->setRight(1);
										//$firstRowCol->setBorderColor('black');
										
										// create format for numeric cells
										$num =& $excel->addFormat();
										$num->setNumFormat('#');
										
										$imeiF =& $excel->addFormat();
										$imeiF->setNumFormat('000000000000000');
										
										$prodcode =& $excel->addFormat();
										$prodcode->setNumFormat('0000000');
										
										$fecIng =& $excel->addFormat();
										$fecIng->setNumFormat('00000000');
										
										// create format for averaged values
										/*$avg =& $excel->addFormat();
										$avg->setNumFormat('0.00');*/
										
										// add data to worksheet
										$rowCount=0;
										foreach ($data as $row) {
										  for($colCount=0; $colCount<sizeof($row); $colCount++) {
										    /*if ($rowCount == 0 && $colCount == 0) {
										      $format = 'firstRowCol';
										    } else if ($rowCount == 0) {
										        $format = 'firstRow';        
										    } else if ($colCount == 0) {
										        $format = 'firstCol';                
										    } else {
										        $format = 'num';                      
										    }*/
										    if($colCount == 11)
										    	$format = 'imeiF';
										    else if($colCount == 15)
										    	$format = 'prodcode';
									    	else if($colCount == 16)
										    	$format = 'fecIng';
									    	else if($colCount == 17)
										    	$format = 'fecIng';
									    	else if($colCount == 18)
										    	$format = 'fecIng';
										    else if($colCount == 19)
											    $format = 'fecIng';
											else if($colCount == 20)
											    $format = 'fecIng';
										    else
										    	$format = 'num';
										    $sheet->writeString($rowCount, $colCount, $row[$colCount]);                       
										  }  
										  // get cell coordinates
										  $start = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, 1);
										  $end = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, (sizeof($row)-1));
										  // add average() formula to terminating cell of each row
										  // except the first (header) row
										  /*if ($rowCount != 0) {
										    $sheet->writeFormula($rowCount, sizeof($row), "=AVERAGE($start:$end)", $avg);     
										  } */
										  $rowCount++;
										}
										
										// save file to disk
										if ($excel->close() === true) 
										{
											echo "<a class='linknuevo' href='informes/" . $archivo . "'>Descargar Archivo</a>";
											
										  //echo 'Spreadsheet successfully saved!';  
										} else {
										  echo 'ERROR: Could not save spreadsheet.';
										}
										
										/*foreach($data as $val)
										{
											foreach($val as $val1)
											{
												echo $val1 . "<br>";
											}
										}*/
											break;
										}
                        			}
                        		?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
	</body>
</html>